# 任务1：买苹果
prince = 10.5
weight = 7.5
money = prince * weight
print("总消费了 %.2f元" % money)

# 任务2：变量的修改
year = 2021
print(year)
year = 2024
print(year)

# 任务3：变量的类型
"""
    整型 浮点型 复数(3.14j) 布尔型 字符串 
    列表[1,'a',2,3](有序的集合 可以包含任务数据类型数组) 
    元组(类似列表 但是不可变) 集合(无序但不重复) 字典(键值对的集合)
"""
a = 12
print(type(a))
print(isinstance(a, int))
a = '123'
print(type(a))
print(isinstance(a, int))  # false
print(isinstance(a, str))  # true

# 浮点数
num = 0.1234
num1 = 0.2
print(num + num1)
print(type(num))  # float
print(0.1 + 0.2)
# 四舍五入 round() 第一个参数是计算的内容 第二个参数是保留小数点后几位
print(round(num + num1, 3))
print(round(0.0236, 3))
print("#################")
# 向上取整 ceil 向下取整 floor
import math

n2 = math.ceil(num + num1)
print("向上取整：", n2)
print("向下取整", math.floor(num + num1))

# 布尔类型
"""
    只有 None 0 0.0 False 所有的空容器(空列表 空元组 空字典 空集合 空字符串)
    解释为假
"""
a = True
print(type(a))  # bool

# 字符串
"""
    用单引号或双引号或三引号(多行字符串)
"""
str0 = 'hello'
str1 = "hello"
str2 = """hello"""
str3 = '''hello'''
str4 = str()  # 空串
print(str0 == str1)  # true
print(str2 == str3)  # true
print(str1 == str3)  # true
str5 = '123\'23\"'
print(str5)
#   字符串的拼接
print(str0 + str1)  # 字符串和数字不能拼接
# 字符串的乘法
print(str0 * 2)  # hellohello
print('*' * 10)
# 字符串索引 从零开始
print(str1[0], str2[1])
# str0 = str1 = str2 'hello'
print(str1[-1])
# 切片 实际上还有第三个参数 表示隔几个切一次 默认是1 str[0:4:1]
# 默认第一个参数是0 结束索引默认是-1
print(str1[0:4])  # hell(0后4前)
print(str1[0:])  # hello

# 字符反转
s = '123456789'
print(s[-1:-10:-1])  # 最后的-1代表反着取
print(s[::-1])
